home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 8: LINUX Games
/
Linux Cubed Series 8 - LINUX Games.iso
/
games
/
role
/
roleplay.0-s
/
roleplay
/
RolePlaying-1.0
/
scripts
/
MONSTFunctions
< prev
next >
Wrap
Text File
|
1995-07-09
|
7KB
|
174 lines
# Module: MONSTFunctions
# Tcl version: 7.3 (Tcl/Tk/XF)
# Tk version: 3.6
# XF version: $__lastrelease$
#
# module contents
global moduleList
global autoLoadList
set moduleList(MONSTFunctions) { UpdateMonster ResetMonsterForm}
set autoLoadList(MONSTFunctions) {1}
# procedures to show toplevel windows
# User defined procedures
# Procedure: UpdateMonster
proc UpdateMonster {} {
global CurrentMonster
if {$CurrentMonster(handle) != {}} {
global MonsterHitType
$CurrentMonster(handle) alignment [[SN MonsterAlignment] get]
$CurrentMonster(handle) armorclass [[SN MonsterArmorClass] get]
set temp [[SN MonsterDamPerAttack] get]
if {[scan $temp "%d-%d" l h] == 2} {
$CurrentMonster(handle) damageperattack $l $h
} else {
$CurrentMonster(handle) damageperattack $temp
}
$CurrentMonster(handle) frequency [[SN MonsterFrequency] get]
case $MonsterHitType in {
{HitDice} {
$CurrentMonster(handle) hittype Dice
$CurrentMonster(handle) numhitdie [[SN MonsterHitDiceND] get]
$CurrentMonster(handle) hitdie [[SN MonsterHitDiceNS] get]
}
{HitPoints} {
$CurrentMonster(handle) hittype Points
$CurrentMonster(handle) hitpoints [[SN MonsterHitPoints] get]
}
}
$CurrentMonster(handle) intelligence [[SN MonsterIntelligence] get]
$CurrentMonster(handle) magicresistance [[SN MonsterMagicResistance] get]
set move [[SN MonsterMove] get]
if {[scan $move {%d"/%d"} m f] == 2} {
$CurrentMonster(handle) move $m
$CurrentMonster(handle) fly $f
} elseif {[scan $move {%d"//%d"} m s] == 2} {
$CurrentMonster(handle) move $m
$CurrentMonster(handle) swim $s
} elseif {[scan $move {"%d"(%d")} m b] == 2} {
$CurrentMonster(handle) move $m
$CurrentMonster(handle) burrow $b
} elseif {[scan $move {%d"*%d"} m w] == 2} {
$CurrentMonster(handle) move $m
$CurrentMonster(handle) web $w
} elseif {[scan $move {%d"} m] == 1} {
$CurrentMonster(handle) move $m
}
$CurrentMonster(handle) name [[SN MonsterName] get]
set temp [[SN MonsterNoAppearing] get]
if {[scan $temp "%d-%d" l h] == 2} {
$CurrentMonster(handle) numappearing $l $h
} else {
$CurrentMonster(handle) numappearing $temp
}
$CurrentMonster(handle) numattacks [[SN MonsterNoAttacks] get]
$CurrentMonster(handle) percentlair [[SN MonsterPercentInLair] get]
$CurrentMonster(handle) psionics [[SN MonsterPsionicAbility] get]
scan [[SN MonsterSize] get] "%f'" size
$CurrentMonster(handle) size $size
$CurrentMonster(handle) specialattacks [[SN MonsterSpecialAttacks] get]
$CurrentMonster(handle) specialdefences [[SN MonsterSpecialDefences] get]
$CurrentMonster(handle) treasuretype [[SN MonsterTreasureType] get]
$CurrentMonster(handle) comments [[SN MonsterComments] get 1.0 end]
set CurrentMonster(isdirty) 1
}
}
# Procedure: ResetMonsterForm
proc ResetMonsterForm {} {
global CurrentMonster
global MonsterHitType
[SN MonsterAlignment] delete 0 end
[SN MonsterArmorClass] delete 0 end
[SN MonsterDamPerAttack] delete 0 end
[SN MonsterFrequency] delete 0 end
[SN MonsterHitDiceND] delete 0 end
[SN MonsterHitDiceNS] delete 0 end
[SN MonsterHitPoints] delete 0 end
[SN MonsterIntelligence] delete 0 end
[SN MonsterMagicResistance] delete 0 end
[SN MonsterMove] delete 0 end
[SN MonsterName] delete 0 end
[SN MonsterNoAppearing] delete 0 end
[SN MonsterNoAttacks] delete 0 end
[SN MonsterPercentInLair] delete 0 end
[SN MonsterPsionicAbility] delete 0 end
[SN MonsterSize] delete 0 end
[SN MonsterSpecialAttacks] delete 0 end
[SN MonsterSpecialDefences] delete 0 end
[SN MonsterTreasureType] delete 0 end
[SN MonsterComments] delete 1.0 end
set {MonsterHitType} {HitDice}
[SN MonsterHitDiceR] select
if {$CurrentMonster(handle) != {}} {
[SN MonsterAlignment] insert end [$CurrentMonster(handle) alignment]
[SN MonsterArmorClass] insert end [$CurrentMonster(handle) armorclass]
set temp [$CurrentMonster(handle) damageperattack]
if {[lindex $temp 0] == [lindex $temp 1]} {
[SN MonsterDamPerAttack] insert end [lindex $temp 0]
} else {
[SN MonsterDamPerAttack] insert end [format "%d-%d" [lindex $temp 0] [lindex $temp 1]]
}
[SN MonsterFrequency] insert end [$CurrentMonster(handle) frequency]
[SN MonsterHitDiceND] insert end [$CurrentMonster(handle) numhitdie]
[SN MonsterHitDiceNS] insert end [$CurrentMonster(handle) hitdie]
[SN MonsterHitPoints] insert end [$CurrentMonster(handle) hitpoints]
[SN MonsterIntelligence] insert end [$CurrentMonster(handle) intelligence]
[SN MonsterMagicResistance] insert end [$CurrentMonster(handle) magicresistance]
[SN MonsterMove] insert end "[$CurrentMonster(handle) move]\""
set fly [$CurrentMonster(handle) fly]
if {$fly != 0} {[SN MonsterMove] insert end "/$fly\""}
set swim [$CurrentMonster(handle) swim]
if {$swim != 0} {[SN MonsterMove] insert end "//$swim\""}
set burrow [$CurrentMonster(handle) burrow]
if {$burrow != 0} {[SN MonsterMove] insert end "($burrow\")"}
set web [$CurrentMonster(handle) web]
if {$web != 0} {[SN MonsterMove] insert end "*$web\""}
[SN MonsterName] insert end [$CurrentMonster(handle) name]
set temp [$CurrentMonster(handle) numappearing]
if {[lindex $temp 0] == [lindex $temp 1]} {
[SN MonsterNoAppearing] insert end [lindex $temp 0]
} else {
[SN MonsterNoAppearing] insert end [format "%d-%d" [lindex $temp 0] [lindex $temp 1]]
}
[SN MonsterNoAttacks] insert end [$CurrentMonster(handle) numattacks]
[SN MonsterPercentInLair] insert end [$CurrentMonster(handle) percentlair]
[SN MonsterPsionicAbility] insert end [$CurrentMonster(handle) psionics]
[SN MonsterSize] insert end "[$CurrentMonster(handle) size]'"
[SN MonsterSpecialAttacks] insert end [$CurrentMonster(handle) specialattacks]
[SN MonsterSpecialDefences] insert end [$CurrentMonster(handle) specialdefences]
[SN MonsterTreasureType] insert end [$CurrentMonster(handle) treasuretype]
[SN MonsterComments] insert end [$CurrentMonster(handle) comments]
case [$CurrentMonster(handle) hittype] in {
{Dice} {
set {MonsterHitType} {HitDice}
[SN MonsterHitDiceR] select
}
{Points} {
set {MonsterHitType} {HitPoints}
[SN MonsterHitPointsR] select
}
{} {
set {MonsterHitType} {HitDice}
[SN MonsterHitDiceR] select
}
}
} else {
[SN MonsterHitDiceND] insert end {1}
[SN MonsterHitDiceNS] insert end {8}
}
}
# Internal procedures
# eof
#